技術問答
技術文章
iT 徵才
Tag
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
第 12 屆 iThome 鐵人賽
DAY
6
0
自我挑戰組
30天|入門NestJs連載學習筆記
系列 第
6
篇
D06 CH8 | OCP 開放-封閉原則
12th鐵人賽
azsx96385
團隊
Outcome First
2020-09-19 16:40:58
1085 瀏覽
分享至
1. 一個好的軟體架構,可以將修改的程式碼量,降到最低程度,理想狀況為0
目標-使系統易於擴展,而不會因修改而產生較大的影響
透過將系統劃分為元件,並將元件安排到依賴階層中而實現的,這類階層結構可以保護較高層級的元件,免受到低層級元件的變更所影響
2. 越上層的元件,擁有越核心的商業邏輯
離I/O越遠的元件層級越高,離I/O越近的層級越
越上層的元件,擁有越核心的商業邏輯
用櫃檯小姐的故事來說明(參考連結1)
想像一下你(user)今天走進一間公司(I/O),負責接待你的,請你填寫資料的是櫃檯小姐(低層級-處理實作),如果你是來談一筆大生意的,你會經過櫃檯,走到最裡面的落地窗辦公室,老闆正在那準備跟你討論(高層級-核心商業邏輯),我覺得這個說法滿容易想像和理解的,完整內容,請參考下方連結
3. 什麼是元件?
大 [系統層級← 元件層級←模組層級←類別層級←程式碼層級 ] 小
可單獨部署的單位,是系統在部屬的最小部分實體
讀這篇的時候,我一直把元件和模組搞混,後續Ch12有針對元件做一個好像有說,又沒什麼用的定義,一切都是需要感覺,總之我自己認定的是,兩者差異在是否可以被獨立部署,或是說獨立啟動而不需要依賴其他模組,舉例來說像是微服務,我接受是元件,可獨立部署,且包含一個以上的模組
4. 如果元件A應該被保護免於受到“元件B的改變”影響,那麼元件B應該依賴元件A,A←依賴←B,B中會 import A ,B知道A,但A不知道B
(B)低層級實作細節,應該依賴於(A)高層級商業邏輯
前台客服,替顧客服務的內容(實作細節),應該遵守老闆的的規定(商業邏輯)
在這個部分,看懂書中p61頁的圖會滿有幫助的,其中有兩個重點,大板塊的是元件,箭頭的指向則是依賴關係,觀察依賴關係的時候,可以特別著重誰依賴誰,因此如果有變動,受影像的是哪一方,我認為本篇對我的學習重點是
學習使用 import 和看箭頭方向區分依賴關係,謹慎規劃不同模組或是類別間的依賴關係
理解 為何依賴方向,可以保護被依賴者,不受影響,資訊隱藏的好處
參考
搞笑談軟工-Clean Architecture(4):架構三原則首部曲—分層原則
留言
追蹤
檢舉
上一篇
D05 CH7 | SRP 單一職責原則
下一篇
D07 CH9 | LSP 替換原則
系列文
30天|入門NestJs連載學習筆記
共
26
篇
目錄
RSS系列文
訂閱系列文
1
人訂閱
22
D22 台南的散步點心
23
D23 台南|國慶煙火在漁光
24
D24 無暇程式碼-CH20 商業邏輯
25
D25 Ch 22 整潔的架構
26
D25 ch 22 整潔的架構
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
17924
篇
完賽人數
223
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
17th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
如何控制被我走私的Web Shell?
dreambooth報錯:hidden_size
關於powershell dns policy 同步問題
Zoom分享時黑屏
unifi 無線設定
git登入不了
樹莓派架站
大家都會如何使用 Gemini CLI 或其他CLI工具
熱門回答
dreambooth報錯:hidden_size
關於powershell dns policy 同步問題
unifi 無線設定
熱門文章
第20天,實作PKCS#7數位信封 / 歐買尬豬霸王豬腳飯 (台北中山) | 30天滷肉飯
08-02:AI輔助演說與即時翻譯
【LOLBAS鐵人賽Day21】WorkFolders.exe:相對路徑劫持&如何成為一個漏洞發掘家!
第22天,pkcs11-tool 讀取 HiCOS 憑證卡 / 阿義魯肉飯 (台北萬華) | 30天滷肉飯
Ch 22. 為什麼程式設計師喜歡用蘋果電腦?
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}